package cn.glc.daily.life.web.service.dict;

import cn.glc.daily.life.model.dto.dict.DictDeleteDto;
import cn.glc.daily.life.model.dto.dict.DictDto;
import cn.glc.daily.life.model.dto.dict.DictOpenOrCloseDto;
import cn.glc.daily.life.model.dto.dict.DictSaveOrUpdateDto;
import cn.glc.daily.life.model.vo.dict.DictVo;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * 字典
 *
 * @author simon
 * @date 2021/4/13 12:00
 * @copyright:
 * @modifier
 * @motto a no talent, people who have to study hard
 */
public interface DictService {

    /**
     * 分页查询
     *
     * @param dictDto
     * @return
     */
    IPage<DictVo> listPage(DictDto dictDto);

    /**
     * 非分页 - 查询指定节点下的所有数据
     *
     * @param dictDto
     * @return
     */
    List<DictVo> queryChildrenByCondition(DictDto dictDto);

    /**
     * 非分页 - 查询指定code数据
     *
     * @param dictDto
     * @return
     */
    DictVo queryByCondition(DictDto dictDto);

    /**
     * 新增
     *
     * @param dictSaveOrUpdateDto
     * @return
     */
    Boolean save(DictSaveOrUpdateDto dictSaveOrUpdateDto);

    /**
     * 修改
     *
     * @param dictSaveOrUpdateDto
     * @return
     */
    Boolean update(DictSaveOrUpdateDto dictSaveOrUpdateDto);

    /**
     * 删除
     *
     * @param dictDeleteDto
     * @return
     */
    Boolean delete(DictDeleteDto dictDeleteDto);

    /**
     * 开启/关闭
     *
     * @param dictOpenOrCloseDto
     * @return
     */
    Boolean openOrClose(DictOpenOrCloseDto dictOpenOrCloseDto);
}
